package com.idp.web.dao;

import com.idp.common.base.BaseDao;
import com.idp.common.persistence.Page;
import com.idp.web.dto.NurseDTO;
import com.idp.web.dto.NurseListDTO;
import com.idp.web.dto.NurseShowDTO;
import com.idp.web.entity.Nurse;
import com.idp.web.vo.NurseSearchVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 护士dao接口
 *
 * @author xubinren
 * @version 1.0
 * @date 2018/3/1
 */
public interface NurseDao extends BaseDao<Nurse, String> {

    /**
     * 根据查询条件分页查找对应的护士列表
     *
     * @param page            分页信息
     * @param nurseSearchVo 查询条件
     * @return List<HospitalListDTO>
     */
    List<NurseListDTO> selectPage(Page<NurseListDTO> page, NurseSearchVo nurseSearchVo);

    /**
     * 根据手机号查询是否已经被注册
     * 手机号传入的时候就需要自己验证，此方法不进行数据验证，都看成有数据
     *
     * @param phone 手机号
     * @return Integer
     */
    Integer getCountByPhone(@Param(value = "phone") String phone);

    /**
     * 查询护士的统计信息
     *
     * @param nurseSearchVo 查询条件
     * @return Integer
     */
    Integer queryStatistics(NurseSearchVo nurseSearchVo);

    /**
     * 通过ID查询护士信息
     *
     * @param id 主键id
     * @return NurseShowDTO
     */
    NurseShowDTO getNurseById(@Param(value = "id") String id);

    /**
     * 编辑页面初始化
     *
     * @param id 主键id
     * @return NurseDTO
     */
    NurseDTO getNurseForEdit(@Param(value = "id") String id);

}